Filename | (eval 1105)[/usr/share/perl5/Sub/Quote.pm:5] |
Statements | Executed 87042 statements in 120ms |
Eval Invoked At | /usr/share/perl5/Sub/Quote.pm line 5 |
Sibling evals | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
3002 | 2 | 2 | 105ms | 111ms | new | DBIx::Class::Storage::BlockRunner::
1 | 1 | 1 | 8µs | 8µs | BEGIN@74 | DBIx::Class::Storage::BlockRunner::
1 | 1 | 1 | 100ns | 100ns | BEGIN@4.2965 | Sub::Quote::
1 | 1 | 1 | 0s | 0s | BEGIN@10.2966 | Method::Generate::Constructor::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | { | ||||
2 | 2 | 2µs | my $_QUOTED = ${$_[1]->{"\$_QUOTED"}}; | ||
3 | 1 | 500ns | my $_UNQUOTED = ${$_[1]->{"\$_UNQUOTED"}}; | ||
4 | 2 | 300ns | 2 | 100ns | # spent 100ns within Sub::Quote::BEGIN@4.2965 which was called:
# once (100ns+0s) by Sub::Quote::_clean_eval at line 4 # spent 100ns making 1 call to Sub::Quote::BEGIN@4.2965
# spent 0s making 1 call to warnings::unimport |
5 | # spent 111ms (105+5.36) within DBIx::Class::Storage::BlockRunner::new which was called 3002 times, avg 37µs/call:
# 3001 times (105ms+5.36ms) by DBIx::Class::Storage::DBI::dbh_do at line 855 of DBIx/Class/Storage/DBI.pm, avg 37µs/call
# once (26µs+1µs) by DBIx::Class::Storage::DBI::dbh_do at line 56 of Sub/Defer.pm | ||||
6 | $_QUOTED if 0; | ||||
7 | 3001 | 462µs | $_UNQUOTED if 0; | ||
8 | # BEGIN quote_sub PRELUDE | ||||
9 | package Method::Generate::Constructor; | ||||
10 | # spent 0s within Method::Generate::Constructor::BEGIN@10.2966 which was called:
# once (0s+0s) by Sub::Quote::_clean_eval at line 15 | ||||
11 | 1 | 0s | $^H = "2018"; | ||
12 | 1 | 0s | ${^WARNING_BITS} = "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"; | ||
13 | 1 | 100ns | %^H = ( | ||
14 | ); | ||||
15 | 1 | 330µs | 1 | 0s | } # spent 0s making 1 call to Method::Generate::Constructor::BEGIN@10.2966 |
16 | # END quote_sub PRELUDE | ||||
17 | 3001 | 1.53ms | my $class = shift; | ||
18 | 3001 | 1.37ms | $class = ref($class) if ref($class); | ||
19 | 3001 | 1.55ms | if ($class ne "DBIx::Class::Storage::BlockRunner") { | ||
20 | if ($Moo::MAKERS{$class}) { | ||||
21 | if ($Moo::MAKERS{$class}{constructor}) { | ||||
22 | return $class->DBIx::Class::Storage::BlockRunner::SUPER::new(@_); | ||||
23 | } | ||||
24 | Moo->_constructor_maker_for($class); | ||||
25 | return $class->new(@_); | ||||
26 | } elsif ($INC{"Moose.pm"} and my $meta = Class::MOP::get_metaclass_by_name($class)) { | ||||
27 | return $meta->new_object( | ||||
28 | $class->can("BUILDARGS") ? $class->BUILDARGS(@_) | ||||
29 | : $class->Moo::Object::BUILDARGS(@_) | ||||
30 | ); | ||||
31 | } | ||||
32 | } | ||||
33 | 3001 | 744µs | my $args; | ||
34 | 3001 | 6.74ms | if ( scalar @_ == 1 ) { | ||
35 | unless ( defined $_[0] && ref $_[0] eq 'HASH' ) { | ||||
36 | die "Single parameters to new() must be a HASH ref" | ||||
37 | ." data => ". $_[0] ."\n"; | ||||
38 | } | ||||
39 | $args = { %{ $_[0] } }; | ||||
40 | } | ||||
41 | elsif ( @_ % 2 ) { | ||||
42 | die "The new() method for $class expects a hash reference or a" | ||||
43 | . " key/value list. You passed an odd number of arguments\n"; | ||||
44 | } | ||||
45 | else { | ||||
46 | 3001 | 6.91ms | $args = {@_}; | ||
47 | } | ||||
48 | 3001 | 7.61ms | if (my @missing = grep !exists $args->{$_}, qw(retry_handler storage wrap_txn)) { | ||
49 | die "Missing required arguments: ".join(', ', sort @missing); | ||||
50 | } | ||||
51 | 3001 | 9.52ms | my $new = bless({}, $class);; | ||
52 | 3001 | 4.16ms | $new->{"max_attempts"} = ( | ||
53 | exists $args->{"max_attempts"} | ||||
54 | ? $args->{"max_attempts"} | ||||
55 | : "20" | ||||
56 | ); | ||||
57 | 3001 | 1.44ms | if (exists $args->{"retry_debug"}) { | ||
58 | $new->{"retry_debug"} = $args->{"retry_debug"}; | ||||
59 | } | ||||
60 | 3001 | 2.07ms | if (exists $args->{"retry_handler"}) { | ||
61 | 3001 | 789µs | do { | ||
62 | 3001 | 8.92ms | local $Method::Generate::Accessor::CurrentAttribute = { | ||
63 | init_arg => "retry_handler", | ||||
64 | name => "retry_handler", | ||||
65 | step => "isa check", | ||||
66 | }; | ||||
67 | 3001 | 831µs | my $_error; | ||
68 | { | ||||
69 | 6002 | 2.75ms | my $_old_error = $@; | ||
70 | 3001 | 3.27ms | if (!eval { | ||
71 | 3001 | 1.04ms | $@ = $_old_error; | ||
72 | 6002 | 5.06ms | do { local @_ = ($args->{"retry_handler"}); # BEGIN quote_sub PRELUDE | ||
73 | package DBIx::Class::Storage::BlockRunner; | ||||
74 | # spent 8µs within DBIx::Class::Storage::BlockRunner::BEGIN@74 which was called:
# once (8µs+0s) by Sub::Quote::_clean_eval at line 79 | ||||
75 | 1 | 1µs | $^H = "133090"; | ||
76 | 1 | 400ns | ${^WARNING_BITS} = "UUUUUUUUUUUUUUUUU"; | ||
77 | 1 | 6µs | %^H = ( | ||
78 | ); | ||||
79 | 1 | 167µs | 1 | 8µs | } # spent 8µs making 1 call to DBIx::Class::Storage::BlockRunner::BEGIN@74 |
80 | # END quote_sub PRELUDE | ||||
81 | |||||
82 | 3001 | 22.0ms | 3001 | 4.04ms | (Scalar::Util::reftype($_[0])||'') eq 'CODE' # spent 4.04ms making 3001 calls to Scalar::Util::reftype, avg 1µs/call |
83 | or DBIx::Class::Exception->throw('retry_handler must be a CODE reference') | ||||
84 | }; | ||||
85 | 3001 | 1.71ms | 1; | ||
86 | }) { | ||||
87 | $_error = $@; | ||||
88 | if (!ref $_error) { | ||||
89 | $_error = "isa check for \"retry_handler\" failed: ".$_error; | ||||
90 | } | ||||
91 | } | ||||
92 | 3001 | 1.40ms | $@ = $_old_error; | ||
93 | } | ||||
94 | 3001 | 2.68ms | die $_error if $_error; | ||
95 | } | ||||
96 | ; | ||||
97 | 3001 | 2.53ms | $new->{"retry_handler"} = $args->{"retry_handler"}; | ||
98 | } | ||||
99 | 3001 | 2.33ms | if (exists $args->{"storage"}) { | ||
100 | $new->{"storage"} = $args->{"storage"}; | ||||
101 | } | ||||
102 | 3001 | 2.12ms | if (exists $args->{"wrap_txn"}) { | ||
103 | $new->{"wrap_txn"} = $args->{"wrap_txn"}; | ||||
104 | } | ||||
105 | 3001 | 17.5ms | return $new; | ||
106 | } | ||||
107 | 1 | 1µs | $$_UNQUOTED = \&DBIx::Class::Storage::BlockRunner::new | ||
108 | } | ||||
109 | 1 | 4µs | 1; | ||
110 | |||||
111 | ; |